#1.使用open打开一个文件
# f=open('D:/python作业/test.txt','w')
# print(f)
# print(type(f))
#
# f.close()

#2.打开文件个数的上限
# count=0
# flist=[]
# while True:
#     f=open('d:/python作业/test.txt','r')
#     flist.append(f)
#     count+=1
#     print(f'打开文件的个数:{count}')

#3.使用write 来实现写文件的操作
# f=open('d:/python作业/test.txt','w')
# f.write('hello')
# f.close()

#4.写防暑打开，其实又有2种情况，直接写方式打开，追加写方式打开
# f=open('d:/python作业/test.txt','w')
# f.write('1111\n')
# f.close()
#
# f=open('d:/python作业/test.txt','a')
# f.write('2222')
# f.close()

# 5.如果文件对象已经被关闭了，那么意味着系统种和该文件相关的内存资源已经释放了，强行去写，就会出现异常
# f=open('d:/python作业/test.txt','w')
# f.close()
# f.write('hello')

# 6.使用read 来读取文件内容，指定读几个字符
# f=open('d:/python作业/test.txt','r',encoding='utf-8')
# #result=f.read(2)
# result=f.read()
# print(result)
# f.close()

#7.更常见的需求，是按行来读取
#  最简单的办法，直接for循环
# f=open('d:/python作业/test.txt','r',encoding='utf-8')
# for line in f:
#     print(f'line:{line}',end='')
# f.close()

#8.还可以使用readlines 方法直接把整个文件所有内容都读出来，按照行组织到一个列表种
# f=open('d:/python作业/test.txt','r',encoding='utf-8')
# lines=f.readlines()
# print(lines)
# f.close()

#有些情况下还是非常容易泄露close的，防不胜防
#使用上下文管理器，就能解决这个问题
def func():
    with open('d:/python作业/test.txt','r',encoding='utf-8') as f:
        #进行文件处理的代码
        #假设这里有很多代码
        if True:
            return
        #很多代码
        